Code coverage report for src/composite-observer.js

Statements: 35.48% (11 / 31)      Branches: 0% (0 / 4)      Functions: 30% (3 / 10)      Lines: 37.93% (11 / 29)      Ignored: none     

All files » src/ » composite-observer.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 591     1   1   1     1 1                             1               1               1                 1     1        
System.register([], function (_export) {
  "use strict";
 
  var CompositeObserver;
 
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
  return {
    setters: [],
    execute: function () {
      CompositeObserver = (function () {
        function CompositeObserver(observers, evaluate) {
          var _this = this;
 
          _classCallCheck(this, CompositeObserver);
 
          this.subscriptions = new Array(observers.length);
          this.evaluate = evaluate;
 
          for (var i = 0, ii = observers.length; i < ii; i++) {
            this.subscriptions[i] = observers[i].subscribe(function (newValue) {
              _this.notify(_this.evaluate());
            });
          }
        }
 
        CompositeObserver.prototype.subscribe = function subscribe(callback) {
          var that = this;
          that.callback = callback;
          return function () {
            that.callback = null;
          };
        };
 
        CompositeObserver.prototype.notify = function notify(newValue) {
          var callback = this.callback;
 
          if (callback) {
            callback(newValue);
          }
        };
 
        CompositeObserver.prototype.dispose = function dispose() {
          var subscriptions = this.subscriptions;
 
          var i = subscriptions.length;
          while (i--) {
            subscriptions[i]();
          }
        };
 
        return CompositeObserver;
      })();
 
      _export("CompositeObserver", CompositeObserver);
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL2NvbXBvc2l0ZS1vYnNlcnZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7TUFBYSxpQkFBaUI7Ozs7Ozs7QUFBakIsdUJBQWlCO0FBQ2pCLGlCQURBLGlCQUFpQixDQUNoQixTQUFTLEVBQUUsUUFBUSxFQUFDOzs7Z0NBRHJCLGlCQUFpQjs7QUFFMUIsY0FBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakQsY0FBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7O0FBRXpCLGVBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUM7QUFDaEQsZ0JBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFDLFFBQVEsRUFBSztBQUMzRCxvQkFBSyxNQUFNLENBQUMsTUFBSyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzlCLENBQUMsQ0FBQztXQUNKO1NBQ0Y7O0FBVlUseUJBQWlCLFdBWTVCLFNBQVMsR0FBQSxtQkFBQyxRQUFRLEVBQUM7QUFDakIsY0FBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2hCLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLGlCQUFPLFlBQVU7QUFDZixnQkFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7V0FDdEIsQ0FBQztTQUNIOztBQWxCVSx5QkFBaUIsV0FvQjVCLE1BQU0sR0FBQSxnQkFBQyxRQUFRLEVBQUM7QUFDZCxjQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDOztBQUU3QixjQUFHLFFBQVEsRUFBQztBQUNWLG9CQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7V0FDcEI7U0FDRjs7QUExQlUseUJBQWlCLFdBNEI1QixPQUFPLEdBQUEsbUJBQUU7QUFDUCxjQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDOztBQUV2QyxjQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO0FBQzdCLGlCQUFNLENBQUMsRUFBRSxFQUFFO0FBQ1QseUJBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1dBQ3BCO1NBQ0Y7O2VBbkNVLGlCQUFpQjs7O21DQUFqQixpQkFBaUIiLCJmaWxlIjoiL1VzZXJzL0Vpc2VuYmVyZ0VmZmVjdC9Eb2N1bWVudHMvR2l0SHViL1RoZSBEdXJhbmRhbCBQcm9qZWN0L2F1cmVsaWEvYmluZGluZy9zcmMvY29tcG9zaXRlLW9ic2VydmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbXBvc2l0ZU9ic2VydmVyIHtcbiAgY29uc3RydWN0b3Iob2JzZXJ2ZXJzLCBldmFsdWF0ZSl7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gbmV3IEFycmF5KG9ic2VydmVycy5sZW5ndGgpO1xuICAgIHRoaXMuZXZhbHVhdGUgPSBldmFsdWF0ZTtcblxuICAgIGZvcih2YXIgaSA9IDAsIGlpID0gb2JzZXJ2ZXJzLmxlbmd0aDsgaSA8IGlpOyBpKyspe1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2ldID0gb2JzZXJ2ZXJzW2ldLnN1YnNjcmliZSgobmV3VmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZnkodGhpcy5ldmFsdWF0ZSgpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmliZShjYWxsYmFjayl7XG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgIHRoYXQuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICByZXR1cm4gZnVuY3Rpb24oKXtcbiAgICAgIHRoYXQuY2FsbGJhY2sgPSBudWxsO1xuICAgIH07XG4gIH1cblxuICBub3RpZnkobmV3VmFsdWUpe1xuICAgIHZhciBjYWxsYmFjayA9IHRoaXMuY2FsbGJhY2s7XG5cbiAgICBpZihjYWxsYmFjayl7XG4gICAgICBjYWxsYmFjayhuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZGlzcG9zZSgpe1xuICAgIHZhciBzdWJzY3JpcHRpb25zID0gdGhpcy5zdWJzY3JpcHRpb25zO1xuXG4gICAgdmFyIGkgPSBzdWJzY3JpcHRpb25zLmxlbmd0aDtcbiAgICB3aGlsZShpLS0pIHtcbiAgICAgIHN1YnNjcmlwdGlvbnNbaV0oKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==